<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="./js/vue.js"></script>
</head>

<body>

    <!-- 
        组件注册:
        Vue.component(组件名称,{
            data:组件数组,
            template : 组件模板内容
        })

        注意事项:
        1. data必须是一个函数
            data:function(){}
        2. 组件模板内容必须是单个根元素
            <button @click="handle">点击了{{count}}次</button>
        3. 组件模板内容可以是模板字符串
            - 模板字符串需要浏览器提供支持(ES6语法) => ``
        4. 组件命名方式
            - 短横线方式
                - Vue.component('my-component',{/*...*/})
            - 驼峰方式
                - Vue.component('MyComponent',{/*...*/})
        如果使用驼峰命名组件,那么在使用组件的时候,只能在字符串模板中用驼峰的方式使用组件,
        但是在普通的标签模板中,必须使用短横线的方式使用组件

    -->
    <div id="app">
        <div><button-counter></button-counter></div>
        <hello-world></hello-world>
        <!-- 
            <HelloWorld></HelloWorld>
            这个是不生效的, 原因是HTML对大小写不敏感
         -->

    </div>

    <script>
        Vue.component('HelloWorld',{
            data:function(){
                return {msg:'HelloWorld'};
            },
            template:'<div>{{msg}}</div>'
        })
        Vue.component('button-counter', {
            // 组件中的data必须是一个函数
            data: function () {
                return {
                    count: 0
                }
            },
            template: `<div>
                <button @click="handle">点击了{{count}}次</button>
                <button>测试</button>
                <HelloWorld></HelloWorld>
                </div>`,
            methods: {
                handle: function () {
                    this.count += 2;
                }
            }
        })
        var vm = new Vue({
            el: "#app",
            data: {

            }
        })


    </script>


</body>

</html>